package org.jeecg.modules.car.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.common.api.vo.ForeignResult;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.api.vo.ShParkingResult;
import org.jeecg.entity.car.CarOrder;
import org.jeecg.entity.charge.ChargeInvoiceRequest;
import org.jeecg.model.car.reqvo.CarDayReportReqVo;
import org.jeecg.model.car.respvo.CarDayReportRespVo;
import org.jeecg.model.charge.reqvo.DayReportReqVo;
import org.jeecg.model.charge.resvo.DayReportRespVo;
import org.jeecg.modules.car.entity.CarPayNotify;
import org.jeecg.vo.car.ForeignCarShPayCallBackReq;

import java.text.ParseException;
import java.util.List;

/**
 * @Description: 车禁订单
 * @Author: liurui
 * @Date:   2020-09-16
 * @Version: V1.0
 */
public interface ICarOrderService extends IService<CarOrder> {

    Result unLineCharge(CarOrder carOrder) throws ParseException;

    Result unLineQRCodeCharge(CarOrder carOrder) throws ParseException;

    Result carBlueInvoice(CarOrder carOrder);

    Result checkOrderByTransNo(String parkId, String transNo);

    List<CarOrder> findPage(Page<CarOrder> page, CarOrder carOrder);

    void updateSyncStatus(String id, Integer code,String remarks);

    CarOrder getOrderBySn(String sn);

    CarOrder getEndChargeTime(String carId, Integer carOrderType);

    List<CarDayReportRespVo> findGroupList(CarDayReportReqVo carDayReportReqVo);

    List<DayReportRespVo> apiFindGroupList(DayReportReqVo dayReportReqVo);

    Result refundCharge(String orderId);

    List<ChargeInvoiceRequest> invoiceRequestListBySn(String sn);

    ChargeInvoiceRequest invoiceRequestByFpqqlsh(String fpqqlsh);

    Result carPayNotify(CarPayNotify stu);

    ForeignResult carPayNotifySH(ForeignCarShPayCallBackReq payCallBackReq);

}
